package it.azienda.managerworkstandard.modello;

import it.azienda.framework.modello.BeanBase;
import it.azienda.framework.persistenza.DAOConnectionSingleton;
import it.azienda.framework.persistenza.DAOException;
import it.azienda.framework.utilita.Utilita;
import java.util.ArrayList;
import javax.faces.model.SelectItem;
import org.hibernate.Session;

public class BeanInserimentoProdotti  extends BeanBase{
    
    public BeanInserimentoProdotti() {
        this.descrizioneBreve="";
        this.prezzoAcquisto=new Double(0);
        this.prezzoVendita=new Double(0);
        this.ricarico=new Double(0);
        this.sconto1=new Double(0);
        this.sconto2=new Double(0);
        this.sconto3=new Double(0);
        this.sconto4=new Double(0);
        this.sconto5=new Double(0);
        this.ricarico1=new Double(0);
        this.ricarico2=new Double(0);
        this.ricarico3=new Double(0);
        this.ricarico4=new Double(0);
        this.ricarico5=new Double(0);
        this.quantita=new Double(0);
        this.quantitaCollo=new Double(0);
        this.scorta=new Double(0);
        this.beanProdotto=new BeanProdotto();
        this.um=new Integer(0);
        this.prezzoIva=new Double(0);
        this.listino1=new Double(0);
        this.listino2=new Double(0);
        this.listino3=new Double(0);
        this.listino4=new Double(0);
        this.listino5=new Double(0);
        this.beanFornitore=new BeanFornitore();
        this.beanFatturaAcquisto=new BeanFatturaAcquisto();
        this.iva=new Double(0);
        this.codice = "";
    }
    
    private BeanFornitore beanFornitore=new BeanFornitore();
    private SelectItem[] listaFornitori;
    private java.lang.Integer idFornitore;
    
    private BeanProdotto beanProdotto=new BeanProdotto();
    private SelectItem[] listaProdotti;
    private java.lang.Integer idProdotto;
    
    private BeanReparto beanReparto=new BeanReparto();
    private SelectItem[] listaReparti;
    private java.lang.Integer idReparti;
    
    private java.lang.Integer idProdottoDett;
    private BeanFatturaAcquisto beanFatturaAcquisto=new BeanFatturaAcquisto();
    private SelectItem[] listaFattureAcquisto;
    private java.lang.Integer idFatturaAcquisto;
    
    private String codice;
    private String descrizioneBreve;
    private String barcode;
    private String barcode2;
    
    private Double prezzoAcquisto;
    private Double prezzoVendita;
    private Double ricarico;
    private Double ricarico1;
    private Double ricarico2;
    private Double ricarico3;
    private Double ricarico4;
    private Double ricarico5;
    private Double iva;
    private Double sconto1;
    private Double sconto2;
    private Double sconto3;
    private Double sconto4;
    private Double sconto5;
    private Integer um;
    private Double quantita;
    private Double quantitaCollo;
    private Double scorta;
    private String reparto;
    private String scaffale;
    private String note;
    private Double prezzoIva;
    private Double listino1;
    private Double listino2;
    private Double listino3;
    private Double listino4;
    private Double listino5;
    
    private ArrayList listaProdottiLookup;
    private SelectItem[] listaProdottoDett;
    private BeanProdottoDett beanProdottoDettLookup = new BeanProdottoDett();
    
    public String getCodice() {
        return codice;
    }
    
    public void setCodice(String codice) {
        this.codice = codice;
    }
    
    public String getDescrizioneBreve() {
        return descrizioneBreve;
    }
    
    public void setDescrizioneBreve(String descrizioneBreve) {
        this.descrizioneBreve = descrizioneBreve;
    }
    
    public String getBarcode() {
        return barcode;
    }
    
    public void setBarcode(String barcode) {
        this.barcode = barcode;
    }
    
    public BeanFatturaAcquisto getBeanFatturaAcquisto() {
        return beanFatturaAcquisto;
    }
    
    public void setBeanFatturaAcquisto(BeanFatturaAcquisto beanFatturaAcquisto) {
        this.beanFatturaAcquisto = beanFatturaAcquisto;
    }
    
    public BeanProdotto getBeanProdotto() {
        return beanProdotto;
    }
    
    public void setBeanProdotto(BeanProdotto beanProdotto) {
        this.beanProdotto = beanProdotto;
    }
    
    public BeanFornitore getBeanFornitore() {
        return beanFornitore;
    }
    
    public void setBeanFornitore(BeanFornitore beanFornitore) {
        this.beanFornitore = beanFornitore;
    }
    
    public Double getPrezzoAcquisto() {
        return prezzoAcquisto;
    }
    
    public void setPrezzoAcquisto(Double prezzoAcquisto) {
        this.prezzoAcquisto = prezzoAcquisto;
    }
    
    public Double getPrezzoVendita() {
        return prezzoVendita;
    }
    
    public void setPrezzoVendita(Double prezzoVendita) {
        this.prezzoVendita = prezzoVendita;
    }
    
    public Double getRicarico() {
        return ricarico;
    }
    
    public void setRicarico(Double ricarico) {
        this.ricarico = ricarico;
    }
    
    public Double getIva() {
        return iva;
    }
    
    public void setIva(Double iva) {
        this.iva = iva;
    }
    
    public Integer getUm() {
        return um;
    }
    
    public void setUm(Integer um) {
        this.um = um;
    }
    
    public Double getQuantita() {
        return quantita;
    }
    
    public void setQuantita(Double quantita) {
        this.quantita = quantita;
    }
    
    public Double getQuantitaCollo() {
        return quantitaCollo;
    }
    
    public void setQuantitaCollo(Double quantitaCollo) {
        this.quantitaCollo = quantitaCollo;
    }
    
    public Double getScorta() {
        return scorta;
    }
    
    public void setScorta(Double scorta) {
        this.scorta = scorta;
    }
    
    public String getReparto() {
        return reparto;
    }
    
    public void setReparto(String reparto) {
        this.reparto = reparto;
    }
    
    public String getScaffale() {
        return scaffale;
    }
    
    public void setScaffale(String scaffale) {
        this.scaffale = scaffale;
    }
    
    public String getNote() {
        return note;
    }
    
    public void setNote(String note) {
        this.note = note;
    }
    
    public Double getPrezzoIva() {
        return prezzoIva;
    }
    
    public void setPrezzoIva(Double prezzoIva) {
        this.prezzoIva = prezzoIva;
    }
    
    public SelectItem[] getListaFornitori() {
        ArrayList lista = null;
        Session session = null;
        try {
            session = DAOConnectionSingleton.newSession();
            lista = (ArrayList)session.createQuery("SELECT fornitori FROM BeanFornitore fornitori order by codice").list();
        } catch (Exception ex) {
            
        } finally {
            DAOConnectionSingleton.closeSession();
        }
        listaFornitori = new SelectItem[lista.size()+1];
        BeanFornitore item = new BeanFornitore();
        listaFornitori[0] = new SelectItem("", "");
        for(int i=0; i<lista.size(); i++) {
            item = (BeanFornitore)lista.get(i);
            listaFornitori[i+1] = new SelectItem(item.getId().toString(),item.getCodice().toString() +" - "+ item.getRagioneSociale());
        }
        return listaFornitori;
    }
    
    public void setListaFornitori(SelectItem[] listaFornitori) {
        this.listaFornitori = listaFornitori;
    }
    
    public java.lang.Integer getIdFornitore() {
        return idFornitore;
    }
    
    public void setIdFornitore(java.lang.Integer idFornitore) {
        this.idFornitore = idFornitore;
    }
    
    public java.lang.Integer getIdProdotto() {
        return idProdotto;
    }
    
    public void setIdProdotto(java.lang.Integer idProdotto) {
        this.idProdotto = idProdotto;
    }
    
    public SelectItem[] getListaProdotti() {
        ArrayList lista = null;
        Session session = null;
        if(this.idReparti != null){
            try {
                session = DAOConnectionSingleton.newSession();
                lista = (ArrayList)session.createQuery("SELECT prodotti FROM BeanProdotto prodotti " +
                        " where prodotti.beanReparto.id = :idReparto" +
                        " order by prodotti.beanReparto.codice, prodotti.codice, prodotti.descrizione")
                        .setInteger("idReparto",this.idReparti.intValue())
                        .list();
            } catch (Exception ex) {
                
            } finally {
                DAOConnectionSingleton.closeSession();
            }
            listaProdotti = new SelectItem[lista.size()+1];
            BeanProdotto item = new BeanProdotto();
            listaProdotti[0] = new SelectItem("", "");
            for(int i=0; i<lista.size(); i++) {
                item = (BeanProdotto)lista.get(i);
                listaProdotti[i+1] = new SelectItem(item.getId().toString(),"Fam."+item.getCodice().toString() +" - "+ item.getDescrizione());
            }
        }
        
        if(listaProdotti == null){
            listaProdotti = new SelectItem[1];
            listaProdotti[0] = new SelectItem("", "");
        }
        
        
        return listaProdotti;
    }
    
    public void setListaProdotti(SelectItem[] listaProdotti) {
        this.listaProdotti = listaProdotti;
    }
    
    public java.lang.Integer getIdFatturaAcquisto() {
        return idFatturaAcquisto;
    }
    
    public void setIdFatturaAcquisto(java.lang.Integer idFatturaAcquisto) {
        this.idFatturaAcquisto = idFatturaAcquisto;
    }
    
    public SelectItem[] getListaFattureAcquisto() {
        ArrayList lista = null;
        Session session = null;
        if(this.idFornitore!=null){
            try {
                BeanLogin login = (BeanLogin) Utilita.getSession().getAttribute("login");
                session = DAOConnectionSingleton.newSession();
                lista = (ArrayList)session.createQuery("SELECT fattureAcquisto FROM BeanFatturaAcquisto fattureAcquisto " +
                        " where fattureAcquisto.beanFornitore.id  = :idFornitore " +
                        " and fattureAcquisto.data between :dataDa and :dataA" +
                        " order by data")
                .setInteger("idFornitore", this.idFornitore.intValue())
                .setDate("dataDa", login.getDataDa())
                .setDate("dataA", login.getDataA())
                .list();
            } catch (Exception ex) {
                
            } finally {
                DAOConnectionSingleton.closeSession();
            }
            listaFattureAcquisto = new SelectItem[lista.size()+1];
            BeanFatturaAcquisto item = new BeanFatturaAcquisto();
            listaFattureAcquisto[0] = new SelectItem("", "");
            for(int i=0; i<lista.size(); i++) {
                item = (BeanFatturaAcquisto)lista.get(i);
                String[] data = item.getData().toString().split("-");
                listaFattureAcquisto[i+1] = new SelectItem(item.getId().toString(),"Num. "+item.getNumeroFattura().toString() +" Del. "+ data[2]+"-"+data[1]+"-"+data[0]);
            }
        }else{
            listaFattureAcquisto = new SelectItem[1];
            listaFattureAcquisto[0] = new SelectItem("", "");
        }
        return listaFattureAcquisto;
    }
    
    public void setListaFattureAcquisto(SelectItem[] listaFattureAcquisto) {
        this.listaFattureAcquisto = listaFattureAcquisto;
    }
    
    public SelectItem[] getListaProdottoDett() {
        Session nuovaSessione = null;
        if(this.listaProdottiLookup!=null){
            
            listaProdottoDett = new SelectItem[this.listaProdottiLookup.size()];
            BeanProdottoDett item = new BeanProdottoDett();
            listaProdottoDett = new SelectItem[this.listaProdottiLookup.size()+1];
            listaProdottoDett[0] =  new SelectItem("","");
            for(int i=0; i<this.listaProdottiLookup.size(); i++) {
                item = (BeanProdottoDett)this.listaProdottiLookup.get(i);
                listaProdottoDett[i+1] = new SelectItem(item.getId().toString(),item.getCodice()+" - "+item.getDescrizioneBreve());
            }
        }
        if(listaProdottoDett==null){
            listaProdottoDett = new SelectItem[1];
            listaProdottoDett[0] = new SelectItem("", "");
        }
        
        return listaProdottoDett;
    }
    
    public void setListaProdottoDett(SelectItem[] listaProdottoDett) {
        this.listaProdottoDett = listaProdottoDett;
    }
    
    public ArrayList getListaProdottiLookup() {
        return listaProdottiLookup;
    }
    
    public void setListaProdottiLookup(ArrayList listaProdottiLookup) {
        this.listaProdottiLookup = listaProdottiLookup;
    }
    
    public BeanProdottoDett getBeanProdottoDettLookup() {
        return beanProdottoDettLookup;
    }
    
    public void setBeanProdottoDettLookup(BeanProdottoDett beanProdottoDettLookup) {
        this.beanProdottoDettLookup = beanProdottoDettLookup;
    }
    
    public java.lang.Integer getIdProdottoDett() {
        return idProdottoDett;
    }
    
    public void setIdProdottoDett(java.lang.Integer idProdottoDett) {
        this.idProdottoDett = idProdottoDett;
    }
    
    public Double getListino1() {
        return listino1;
    }
    
    public void setListino1(Double listino1) {
        this.listino1 = listino1;
    }
    
    public Double getListino2() {
        return listino2;
    }
    
    public void setListino2(Double listino2) {
        this.listino2 = listino2;
    }
    
    public Double getSconto1() {
        return sconto1;
    }
    
    public void setSconto1(Double sconto1) {
        this.sconto1 = sconto1;
    }
    
    public Double getSconto2() {
        return sconto2;
    }
    
    public void setSconto2(Double sconto2) {
        this.sconto2 = sconto2;
    }
    
    public Double getListino3() {
        return listino3;
    }
    
    public void setListino3(Double listino3) {
        this.listino3 = listino3;
    }
    
    public Double getListino4() {
        return listino4;
    }
    
    public void setListino4(Double listino4) {
        this.listino4 = listino4;
    }
    
    public Double getListino5() {
        return listino5;
    }
    
    public void setListino5(Double listino5) {
        this.listino5 = listino5;
    }
    
    public Double getSconto3() {
        return sconto3;
    }
    
    public void setSconto3(Double sconto3) {
        this.sconto3 = sconto3;
    }
    
    public Double getSconto4() {
        return sconto4;
    }
    
    public void setSconto4(Double sconto4) {
        this.sconto4 = sconto4;
    }
    
    public Double getSconto5() {
        return sconto5;
    }
    
    public void setSconto5(Double sconto5) {
        this.sconto5 = sconto5;
    }
    
    public BeanReparto getBeanReparto() {
        return beanReparto;
    }
    
    public void setBeanReparto(BeanReparto beanReparto) {
        this.beanReparto = beanReparto;
    }
    
    public SelectItem[] getListaReparti() {
        
        ArrayList lista = null;
        Session session = null;
        try {
            session = DAOConnectionSingleton.newSession();
            lista = (ArrayList)session.createQuery("SELECT bean FROM BeanReparto bean order by codice").list();
        } catch (Exception ex) {
            
        } finally {
            DAOConnectionSingleton.closeSession();
        }
        listaReparti = new SelectItem[lista.size()+1];
        BeanReparto item = new BeanReparto();
        listaReparti[0] = new SelectItem("", "");
        for(int i=0; i<lista.size(); i++) {
            item = (BeanReparto)lista.get(i);
            listaReparti[i+1] = new SelectItem(item.getId()," Reparto: "+item.getCodice().toString() +" - "+ item.getDescrizione());
        }
        return listaReparti;
    }
    
    public void setListaReparti(SelectItem[] listaReparti) {
        this.listaReparti = listaReparti;
    }
    
    public java.lang.Integer getIdReparti() {
        return idReparti;
    }
    
    public void setIdReparti(java.lang.Integer idReparti) {
        this.idReparti = idReparti;
    }
    
    public String getBarcode2() {
        return barcode2;
    }
    
    public void setBarcode2(String barcode2) {
        this.barcode2 = barcode2;
    }
    
    public Double getRicarico1() {
        return ricarico1;
    }
    
    public void setRicarico1(Double ricarico1) {
        this.ricarico1 = ricarico1;
    }
    
    public Double getRicarico2() {
        return ricarico2;
    }
    
    public void setRicarico2(Double ricarico2) {
        this.ricarico2 = ricarico2;
    }
    
    public Double getRicarico3() {
        return ricarico3;
    }
    
    public void setRicarico3(Double ricarico3) {
        this.ricarico3 = ricarico3;
    }
    
    public Double getRicarico4() {
        return ricarico4;
    }
    
    public void setRicarico4(Double ricarico4) {
        this.ricarico4 = ricarico4;
    }
    
    public Double getRicarico5() {
        return ricarico5;
    }
    
    public void setRicarico5(Double ricarico5) {
        this.ricarico5 = ricarico5;
    }
}